/**
 * 校验手机号
 * @param {String} v - 要校验的值
 * @return {Boolean} true或false
 */
function phone(v) {
  return /^1(3|5|6|7|8|9)\d{9}$/.test(v)
}
/**
 * 校验密码
 * @param {String} v - 要校验的值
 * @return {Boolean} true或false
 */
function password(v) {
  return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$/.test(v)
}

function generateId(preStr = 'BH') {
  return (
    preStr +
    new Date().toLocaleDateString().split('/').join('') +
    new Date().toLocaleTimeString().slice(2).split(':').splice(0, 1).join('') +
    new Date().getMilliseconds() +
    Math.random().toString().split('.')[1]
  ).slice(0, 20)
}

function regFn(arr, options) {
  const {
    reqParams,
    qurey = true // 是查询还是更新
  } = options
  const params = {}
  if (Array.isArray(arr)) {
    arr.forEach(key => {
      if (!reqParams[key]) return
      // 是查询还是更新
      params[key] = qurey ? new RegExp(reqParams[key], 'i') : reqParams[key]
    })
  }
  return params
}

module.exports = {
  phone,
  password,
  generateId,
  regFn
}
